<template>
	<view class="activist-container" :data-theme="themeStyle">
		<header-back :headerTitle="$lang('title')"></header-back>
		<mescroll-uni ref="mescroll" @getData="getListData" top="100">
			<block slot="list">
				<view class="container">
					<block v-if="refundList.length">
						<view class="order-item" v-for="(item, index) in refundList" :key="index">
							<view class="order-header">
								<view class="iconfont icondianpu" @click="toShopDetail(item.site_id)"></view>
								<text class="site-name" @click="toShopDetail(item.site_id)">{{ item.site_name }}</text>
								<view class="iconfont iconright" @click="toShopDetail(item.site_id)"></view>
								<!-- <text class="status-num font-size-base">{{ item.order_no }}</text> -->
								<view class="status-name" v-if="item.refund_status == 3">{{$lang('refundSuccessfully')}}</view>
								<view class="status-name color-base-text" v-if="item.refund_status == 1">{{$lang('refunding')}}</view>
								<view class="status-name color-base-text" v-if="item.refund_status == -1">{{$lang('refundFailed')}}</view>
							</view>
							<view class="goods-wrap">
								<image :src="$util.img(item.sku_image, { size: 'mid' })" @error="imgError(index)" mode="aspectFill" :lazy-load="true"></image>
								<view class="goods-info">
									<view class="goods-name" @click="refundDetail(item.order_goods_id)">{{ item.sku_name }}</view>
									<view class="goods-num">
										<view class="num-text color-base-text">{{ item.refund_status_name }}</view>
										<view class="num-price">
											<text>{{ item.price }} USDT</text>
											<text class="num">×{{ item.num }}</text>
										</view>
									</view>
								</view>
							</view>
							<view class="goods-btn">
								<view class="btn-text">
									<text>{{$lang('commons')}}{{ item.num }}{{$lang('items')}}</text>
									<text>{{$lang('reimburse')}}：{{ item.refund_status == 3 ? item.refund_real_money : item.refund_apply_money }} USDT</text>
								</view>
								<view class="order-action">
									<view class="order-box-btn" @click="refundDetail(item.order_goods_id)">{{ $lang('checkDetail') }}</view>
									<block v-if="item.refund_action.length">
										<view
											class="order-box-btn"
											@click="refundAction(actionItem.event, item)"
											v-for="(actionItem, actionIndex) in item.refund_action"
											:key="actionIndex"
										>
											{{ actionItem.title }}
										</view>
									</block>
								</view>
							</view>
						</view>
					</block>
					<block v-else>
						<view class="cart-empty" v-if="showEmpty"><ns-empty :isIndex="!1" :text="$lang('emptyTips')"></ns-empty></view>
					</block>
				</view>
			</block>
		</mescroll-uni>
	</view>
</template>

<script>
	import headerBack from '@/components/headerBack.vue'
import refundMethod from '../public/js/refundMethod.js';
import globalConfig from '@/common/js/golbalConfig.js';

export default {
	data() {
		return {
			refundList: [],
			showEmpty: false
		};
	},
	components: {
		headerBack
	},
	mixins: [refundMethod, globalConfig],
	onShow() {
		// 刷新多语言
		this.$langConfig.refresh();

		if (!uni.getStorageSync('token')) {
			this.$util.redirectTo('/pages/order/login/login', {
				back: '/pages/order/activist/activist'
			});
		}
	},
	methods: {
		getListData(mescroll) {
			this.$api.sendRequest({
				url: '/api/orderrefund/lists',
				data: {
					page: mescroll.num,
					page_size: mescroll.size
				},
				success: res => {
					this.showEmpty = true;
					let newArr = [];
					let msg = res.message;
					if (res.code == 0 && res.data) {
						newArr = res.data.list;
					} else {
						this.$util.showToast({
							title: msg
						});
					}
					mescroll.endSuccess(newArr.length);
					//设置列表数据
					if (mescroll.num == 1) this.refundList = []; //如果是第一页需手动制空列表
					this.refundList = this.refundList.concat(newArr);
				},
				fail: res => {
					mescroll.endErr();
				}
			});
		},
		refundDetail(order_goods_id) {
			this.$util.redirectTo('/otherpages/order/refund_detail/refund_detail', {
				order_goods_id
			});
		},
		refundAction(event, data) {
			switch (event) {
				case 'orderRefundCancel': // 撤销维权
					this.cancleRefund(data.order_goods_id, res => {
						if (res.code >= 0) {
							this.$util.showToast({
								title: this.$lang('condition.revocationSuccessful')
							});
							this.$refs.mescroll.refresh();
						}
					});
					break;
				case 'orderRefundDelivery': // 退款发货
					this.$util.redirectTo('/otherpages/order/refund_detail/refund_detail', {
						order_goods_id: data.order_goods_id,
						action: 'returngoods'
					});
					break;
				case 'orderRefundAsk':
					this.$util.redirectTo('/otherpages/order/refund/refund', {
						order_goods_id: data.order_goods_id
					});
					break;
			}
		},
		imgError(index) {
			this.refundList[index].sku_image = this.$util.getDefaultImage().default_goods_img;
			this.$forceUpdate();
		},
		toShopDetail(e) {
			this.$util.redirectTo('/otherpages/shop/index/index', { site_id: e });
		}
	}
};
</script>

<style lang="scss" scoped>
/deep/ .fixed {
	position: relative;
	top: 0;
}
.cart-empty {
	padding-top: 154px !important;
}
@import '../public/css/activist.scss';
</style>
